Lịch sử và thuật giải mã MD5

Message Digest là một loạt các giải thuật đồng hóa thông tin được thiết kế bởi Giáo sư Ronald Rivest của trường MIT (Rivest, 1994). Khi công việc phân tích chỉ ra rằng giải thuật trước MD5-MD4- có vẻ không an toàn, ông đã thiết kế ra MD5 vào năm 1991 để thay thế an toàn hơn. (Điểm yếu của MD4 sau đó đã được Hans Dobbertin tìm thấy).

Vào năm 1993, Den Boer và Bosselaers đã tìm ra, tuy còn giới hạn, một dạng "xung đột ảo" của hàm nén MD5; đó là, với hai véc-tơ khởi tạo I và J khác nhau 4 bit, dẫn đến:

MD5compress(I,X) = MD5compress(J,X).

Trong năm 1996, Dobbertin đã thông báo có xung đột của hàm nén MD5 (Dobbertin, 1996). Dù nó không phải là một cuộc tấn công vào toàn bộ hàm băm MD5, nhưng nó đủ gần để các chuyên gia mã hóa đề nghị sử dụng kỹ thuật khác để thay thế, như WHIRLPOOL, SHA-1 hay RIPEMD-160.

Kích thước của bảng băm-128 bit-đủ nhỏ để bị tấn công bruteforce. MD5CRK là một dự án phân bố bắt đầu vào tháng 3 năm 2004 với mục tiêu chứng tỏ rằng MD5 không an toàn trên thực tế bằng cách tìm ra những xung đột sử dụng tấn công bruteforce.

MD5CRK kết thúc nhanh chóng sau ngày 17 tháng 8 năm 2004, khi xung đột đối với toàn bộ MD5 được công bố bởi Xiaoyun Wang, Dengguo Feng, Xuejia Lai, và Hongbo Yu[1][2]. Cuộc tấn công phân tích của họ được báo cáo là chỉ diễn ra có một giờ trên nhóm máy IBM p690.

Vào ngày 1 tháng 3 năm 2005, Arjen Lenstra, Xiaoyun Wang, và Benne de Weger đã biểu diễn[3] việc xây dựng hai giấy phép X.509 với các khóa công cộng khác nhau và cùng bảng băm MD5, một sự xung đột thực thế đáng được trình diễn. Sự xây dựng bao gồm những khóa riêng tư cho cả hai khóa công cộng. Vài ngày sau, Vlastimil Klima đã mô tả[4] một giải thuật nâng cao, có thẻ xây dựng những xung đột MD5 trong vài giờ với một máy tính xách tay. Vào ngày 18 tháng 3 năm 2006, Klima đã phát hành một giải thuật[5] có thể tìm thấy đụng độ trong vòng một phút bằng một máy tính xách tay, sử dụng một phương thức mà anh gọi là bắt đường hầm.